package ar.uade.distribuidas.tpo.web.servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ar.uade.distribuidas.tpo.base.dominiodto.ClienteDTO;
import ar.uade.distribuidas.tpo.base.dominiodto.CondicionDeVentaDTO;
import ar.uade.distribuidas.tpo.web.delegado.BD;


/**
 * Servlet implementation class AltaCliente
 */
@WebServlet("/AltaCliente")
public class AltaCliente extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private Long cuil = 0L;
	private String nombre = "";

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public AltaCliente() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/altacliente.jsp");
		this.nombre = request.getParameter("nombre");
		this.cuil = Long.valueOf(request.getParameter("cuil"));
		ClienteDTO cdto = new ClienteDTO();
		cdto.setCuil(cuil);
		cdto.setNombre(nombre);
		try{
			
			
			if(Float.valueOf(request.getParameter("descuento") )>0f){
				CondicionDeVentaDTO efe = new CondicionDeVentaDTO();
				efe.setNombre("Contado");
				efe.setPorcentaje( Long.valueOf(request.getParameter("descuento")));
				efe.setPlazo(0);
				cdto.getCondiciones().add(efe);
			}
			
			if(Float.valueOf(request.getParameter("recargo") )>0f ){
				CondicionDeVentaDTO tar = new CondicionDeVentaDTO();
				tar.setNombre("Financiacion");
				tar.setPorcentaje( Long.valueOf(request.getParameter("recargo")));
				tar.setPlazo( Integer.valueOf(request.getParameter("plazo")));
				cdto.getCondiciones().add(tar);
			}
			BD.getInstance().altaCliente(cdto);
			
			
			request.setAttribute("allok", "La solicitud fue procesada correctamente.");
			request.getRequestDispatcher("/jsp/altacliente.jsp").forward(request, response);
			
		}catch(Exception e){
			request.setAttribute("allerror", "Hubo un error al procesar la solicitud.");
			request.getRequestDispatcher("/jsp/altacliente.jsp").forward(request, response);

		}


	}

	public Long getCuil() {
		return cuil;
	}

	public void setCuil(Long cuil) {
		this.cuil = cuil;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}



}
